package com.sz.mes.entity;

import java.util.Date;
import java.lang.Double;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.sz.mes.entity.BaseCustomEntity;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.util.D;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 采购收货表 Entity定义
 * @author hem
 * @version 1.0
 * @date 2023-09-14
 * Copyright © szhs
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("receivement")
public class Receivement extends BaseCustomEntity {

    private static final long serialVersionUID = -4616049136575844348L;

    /**
     * 业务日期
     */
    @JsonFormat(pattern = D.FORMAT_DATE_Y4MD)
    @TableField()
    private Date businessDate;

    /**
     * 入库确认日期
     */
    @JsonFormat(pattern = D.FORMAT_DATE_Y4MD)
    @TableField()
    private Date instockDate;

    /**
     * 单据编号
     */
    @Length(max = 100, message = "单据编号长度应小于100")
    @TableField()
    private String receiptNum;

    /**
     * 行号
     */
    @TableField()
    private Integer rowNum;

    /**
     * 料品料号
     */
    @Length(max = 100, message = "料品料号长度应小于100")
    @TableField()
    private String productNum;

    /**
     * 料品名称
     */
    @Length(max = 100, message = "料品名称长度应小于100")
    @TableField()
    private String productName;

    /**
     * 料品规格
     */
    @Length(max = 100, message = "料品规格长度应小于100")
    @TableField()
    private String productSpecification;

    /**
     * 请购单据编号
     */
    @Length(max = 100, message = "请购单据编号长度应小于100")
    @TableField()
    private String buyReceiptNum;

    /**
     * 请购单据行号
     */
    @Length(max = 100, message = "请购单据行号长度应小于100")
    @TableField()
    private String buyReceiptRow;

    /**
     * 采购单据编号
     */
    @Length(max = 100, message = "采购单据编号长度应小于100")
    @TableField()
    private String purchaseReceiptNum;

    /**
     * 采购单据行号
     */
    @Length(max = 100, message = "采购单据行号长度应小于100")
    @TableField()
    private String purchaseReceiptRow;

    /**
     * 业务类型
     */
    @Length(max = 100, message = "业务类型长度应小于100")
    @TableField()
    private String businessType;

    /**
     * 实到数量
     */
    @TableField()
    private Integer factNum;

    /**
     * 实收数量
     */
    @TableField()
    private Integer factReceiveNum;

    /**
     * 单位
     */
    @Length(max = 100, message = "单位长度应小于100")
    @TableField()
    private String unit;
}
